home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / NRPAS13 / POLCOE.DEM < prev    next >
Text File  |  1991-04-29  |  2KB  |  64 lines

  1. PROGRAM d3r7 (input,output);
  2. (* driver for routine POLCOE *)
  3. LABEL 1;
  4. CONST
  5.    np=5;
  6.    pi=3.1415926;
  7. TYPE
  8.    glnarray = ARRAY [1..np] OF real;
  9. VAR
  10.    i,j,nfunc : integer;
  11.    f,sum,x : real;
  12.    coeff,xa,ya : glnarray;
  13.  
  14. (*$I MODFILE.PAS *)
  15. (*$I POLCOE.PAS *)
  16.  
  17. BEGIN
  18.    FOR nfunc := 1 to 2 DO BEGIN
  19.       IF (nfunc = 1) THEN BEGIN
  20.          writeln ('sine function from 0 to pi');
  21.          writeln;
  22.          FOR i := 1 to np DO BEGIN
  23.             xa[i] := i*pi/np;
  24.             ya[i] := sin(xa[i])
  25.          END
  26.       END ELSE IF (nfunc = 2) THEN BEGIN
  27.          writeln ('exponential function from 0 to 1');
  28.          writeln;
  29.          FOR i := 1 to np DO BEGIN
  30.             xa[i] := 1.0*i/np;
  31.             ya[i] := exp(xa[i])
  32.          END
  33.       END ELSE BEGIN
  34.          GOTO 1
  35.       END;
  36.       polcoe(xa,ya,np,coeff);
  37.       writeln (' ':2,'coefficients');
  38.       FOR i := 1 to np DO BEGIN
  39.          writeln (coeff[i]:12:6)
  40.       END;
  41.       writeln;
  42.       writeln('x':9,'f(x)':13,'polynomial':15);
  43.       FOR i := 1 to 10 DO BEGIN
  44.          IF (nfunc = 1) THEN BEGIN
  45.             x := (-0.05+i/10.0)*pi;
  46.             f := sin(x)
  47.          END ELSE IF (nfunc = 2) THEN BEGIN
  48.             x := -0.05+i/10.0;
  49.             f := exp(x)
  50.          END;
  51.          sum := coeff[np];
  52.          FOR j := np-1 DOWNTO 1 DO BEGIN
  53.             sum := coeff[j]+sum*x
  54.          END;
  55.          writeln (x:12:6,f:12:6,sum:12:6)
  56.       END;
  57.       writeln;
  58.       writeln ('************************************');
  59.       writeln ('press RETURN');
  60.       readln
  61.    END;
  62. 1:
  63. END.
  64.